package testing;

import static org.junit.Assert.assertEquals;

import java.util.Arrays;
import java.util.Stack;

import org.junit.Before;
import org.junit.Test;

import escenario.Escenario;

public class TestDisparoTripleNorte {
	Escenario esc = new Escenario();
	private Stack<int[]> expected = new Stack<int[]>();
	
	@Before
	public void setup() {
		esc.iniciarEscenario();
		expected.push(new int[] {2, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0});
		expected.push(new int[] {1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0});
		expected.push(new int[] {1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0});
		expected.push(new int[] {0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0});
		expected.push(new int[] {0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0});
		expected.push(new int[] {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0});
	}	
	
	@Test
	public void test() {
		esc.getGeneradorMisilesEnemigos().generarMisil(200, 50, 90, 5, 90, 180);
		esc.getGeneradorMisilesEnemigos().generarMisil(150, 30, 110, 9, 90, 280);
		esc.getGeneradorMisilesEnemigos().generarMisil(250, 45, 85, 9, 90, 160);

		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		assertEquals(Arrays.toString(expected.pop()), esc.getSistemaBateriaMisiles().getPilaVectorMarcado().pop());
		assertEquals(Arrays.toString(expected.pop()), esc.getSistemaBateriaMisiles().getPilaVectorMarcado().pop());
		assertEquals(Arrays.toString(expected.pop()), esc.getSistemaBateriaMisiles().getPilaVectorMarcado().pop());
		assertEquals(Arrays.toString(expected.pop()), esc.getSistemaBateriaMisiles().getPilaVectorMarcado().pop());
		assertEquals(Arrays.toString(expected.pop()), esc.getSistemaBateriaMisiles().getPilaVectorMarcado().pop());
		assertEquals(Arrays.toString(expected.pop()), esc.getSistemaBateriaMisiles().getPilaVectorMarcado().pop());
	
		try {
			Thread.sleep(22000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}